home *** CD-ROM | disk | FTP | other *** search
- ************************************************************
- * *
- * Procedure DEALLOCATE *
- * *
- * This procedure deallocates AUs from the bitmap. The *
- * input parameters to this procedure are: *
- * *
- * R6 - SCSI ID in the high byte *
- * R7 - Starting AU to delete *
- * R8 - Ending AU to deallocate *
- * *
- ************************************************************
-
- DEALL DATA ALWS
- DATA DEALL0
-
- * REGISTER USAGE
- *
- * R7, R8 - Used to read, write block #
- * R2 - Current AU we're deallocating
- * R0 - Offset within the word
- * R1 - Offset within the block
-
- DEALL0 CLR R7
-
- MOV @14(R13),R2 Get starting AU
- MOV @12(R13),R6 Get SCSI ID
-
- DEALL1 MOV R2,R8
- AI R8,256*8 Offset due to VIB
- MOV R8,R0
- * ANDI R0,>000F
- MOV R8,R1
- ANDI R1,>0FF0
- SRL R1,3
- AI R1,SECBUF
- SRL R8,12
- LI R5,>8000
- SRC R5,0
-
- DEALL2 BLWP @BANKIT Read the block
- DATA SCSIRD
- JEQ DEALL3
- AI R8,16 If there was an error, read the copy
- BLWP @BANKIT Read the block
- DATA SCSIRD
- AI R8,-16
-
- DEALL3
- SZC R5,*R1
-
- C R2,@16(R13) See if we're done
- JEQ DEALL4
- INC R2
- SRC R5,1
- JNC DEALL3
- INCT R1
- CI R1,SECBUF+>200
- JNE DEALL3
-
- * Write out the bitmap and read in the next part
-
- BLWP @BANKIT
- DATA SCSIWT
- AI R8,16
- BLWP @BANKIT
- DATA SCSIWT
- AI R8,-15
- LI R1,SECBUF
- JMP DEALL2
-
- * Now write out the last buffer
- *
- DEALL4 BLWP @BANKIT
- DATA SCSIWT
-
- AI R8,16 Write out the copy as well
- BLWP @BANKIT
- DATA SCSIWT
-
- RTWP
-